package com.cy.shop.mapper;

import com.cy.shop.VO.CartVO;
import com.cy.shop.entity.Cart;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface CartMapper {

    /**
     * 插入购物车数据
     * @param cart 购物车数据
     * @return 受影响的行数
     */
    Integer insert(Cart cart);

    /**
     * 更新购物车中某件商品的数量
     * @param cid 购物车数据id
     * @param num 更新的数量
     * @param modifiedUser 修改者
     * @param modifiedTime 修改时间
     * @return 受影响的行数
     */
    Integer updateNumCid(@Param("cid") Integer cid,
                         @Param("num") Integer num,
                         @Param("modifiedUser") String modifiedUser,
                         @Param("modifiedTime") Date modifiedTime);

    /**
     * 根据用户的id和商品的id来查询购物车中的数据
     * @param uid 用户id
     * @param pid 商品id
     * @return
     */
    Cart findByUidAndPid(@Param("uid") Integer uid,
                         @Param("pid") Integer pid);

    /**
     * 显示购物车列表（多表查询）
     * @param uid 用户id
     * @return
     */
    List<CartVO> findVOByUid(Integer uid);

    /**
     * 查询购物车中选中的商品是否还存在
     * @param cid 购物车数据id
     * @return
     */
    Cart findByCid(Integer cid);

    /**
     * 显示勾选的购物车数据
     * @param cids 购物车id
     * @return
     */
    List<CartVO> findVOByCid(Integer[] cids);
}
